En esta página se podrá visualizar un mapa con la cantidad de especies de orquÃdeas de acuerdo a las Areas Silvestres Protegidas de Costa Rica.
library(raster)
library(sf)
library(spData)
library(leaflet)
library(dplyr)
library(RColorBrewer)
# Datos de orquideas
orquideas <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/orchidaceae-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
# Carga Datos de Areas Protegidas Silvestres
asp <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/sinac/asp/asp-wgs84.geojson",
quiet = TRUE
)
# Carga de la capa de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
# Carga de la capa de provincias
provincias <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_provincias_simp_wgs84.geojson",
quiet = TRUE
)
# Asignación del sistema de coordenadas
st_crs(orquideas) = 4326
st_crs(asp) = 4326
# Eliminación de los registros con un valor mayor a 1000
orquideas <-
orquideas %>%
mutate(coordinateUncertaintyInMeters = as.numeric(coordinateUncertaintyInMeters)) %>%
mutate(eventDate = as.Date(eventDate, "%Y-%m-%d"))
orquideas <-
orquideas %>%
dplyr::filter(!is.na(coordinateUncertaintyInMeters) & coordinateUncertaintyInMeters <= 1000)
# Descartar registros con especie = NA
orquideas <-
orquideas %>%
dplyr::filter(!is.na(species) &
species != "")
# Eliminación de los registros de Areas Marinas
asp <-
asp %>%
dplyr::filter(!is.na(descripcio) &
descripcio != "Area Marina de Manejo")
asp <-
asp %>%
dplyr::filter(!is.na(descripcio) &
descripcio != "Area marina protegida")
# Recolección de los datos de orquideas en asp
asp_registros <-
asp %>%
st_make_valid() %>%
st_join(orquideas) %>%
group_by(nombre_asp) %>%
summarize(species = n())
# Paleta de colores
registros_colores <-
colorNumeric(palette = "YlOrBr",
domain = asp_registros$species,
na.color = "transparent")
# Obtencion de capa de altitud
alt <- getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
altitud <- crop(alt, extent(-86, -82.3, 8, 11.3))
altitud <-
alt %>%
crop(provincias) %>%
mask(provincias)
# popups
pas <- paste0("<b>", "Area protegia: ","</b>",
(asp_registros$nombre_asp),"<br>",
"<b>", "Numero de especies: ","</b>",
(asp_registros$species),"<br>",
"<b>", "Descripcion del Area Silvestre Protegida: ","</b>",
(asp$descripcio))
# Mapa
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addRasterImage(
altitud,
opacity = 0.8,
col = brewer.pal(5, "YlGn"),
group = "Altitud"
) %>%
addPolygons(
data = asp_registros,
fillColor = ~ registros_colores(asp_registros$species),
fillOpacity = 0.7,
stroke = TRUE,
color = "black",
weight = 1,
popup = pas,
group = "ASP - especies de orquideas"
) %>%
addLayersControl(baseGroups = c("OpenStreetMap","Stamen Toner Lite", "Imágenes de ESRI"),
overlayGroups = c("ASP - especies de orquideas", "Altitud")) %>%
addLegend(
position = "bottomleft",
pal = registros_colores,
values = asp_registros$species,
group = "ASP - especies de orquideas",
title = "Cantidad de especies") %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)